//Base class used for all cores in the game engine
#pragma once

class Core
{
protected:
	bool m_Visible;	//Visibility determines whether the Core will be executed or not

public:
	Core()  {SetVisibility(true);}

		//All Cores will include these functions
	virtual void Init();
	virtual void Update();
	virtual void Render();
	virtual void Exit();

		//Functions to modify and access visibility of core
	void SetVisibility(bool visible)  {m_Visible = visible;}
	bool Visible()  {return m_Visible;}

	~Core();
};